Method for finding quotient in a digital system

ABSTRACT

A fast division method which uses a smaller quotient digit set of {−1, 1} than {−1, 0, 1} that is used by known algorithms, therefore accelerates the speed of calculation. Partial remainders can be computed with the signals of remainders decided independently and in parallel. By taking the absolute values of the remainders, we can successively subtract the remainders without the need of knowing the signs of remainders, while signs of the remainders can be decided in parallel and independently at the same time. The algorithm adopts non-restoring division operation and CSA type of operation for fast subtraction. The algorithm is also an on-line algorithm that facilitates highly pipelined operation while it is much simpler than the existing on-line algorithms.

This is a continuation of application Ser. No. 08/188,068 filed Jan. 26, 1994 now abandoned.

BACKGROUND OF THE INVENTION

The present invention relates to a method for finding a quotient, especially to a method for finding a quotient in a digital system by signed-digit operation.

Inherently, division operation is a sequential operation. The quotient digits are produced only after the sign of the remainder have been detected. As a result, division operation is much slower than multiplication operation. Efforts have been put in speeding up the division operation. It is noted that the SRT algorithm (C. V. Freiman, “Statistical Analysis of Certain Binary division algorithms,” Proc. IRE, Vol. 49, January 1961, pp. 91-103; K. Hwang, Computer Arithmetic: Principles, Architectures, and Design, 1979, pp. 222-223) eliminates the restoring operations of the partial remainders. Another algorithm disclosed by K. Hwang in the aforementioned article confines the quotient digits either to be 1 or −1, depending on the signs of remainder. However, the bottleneck of those algorithms lies in sign detection of the remainder. Fast addition algorithms such as CLA (carry-lookahead addition) shorten the operation time, but results in complex hardware structures. The aforementioned articles of C. V. Freiman and K. Hwang are hereby incorporated herein by reference.

Recently, division algorithm based on SD (signed-digit) number representation was proposed which is much faster than the previous algorithm (s. Kuninobu et al., “Design of High Speed MOS Multiplier and Divider Using Redundant Binary Representation,” IEEE Proceeding of Symposium on Computer Arithmetic, 1987, pp. 80-86). This algorithm considerably shortens the time for remainder subtraction by using carry-propagation-free SD addition. However, it is much more complex because in each iteration the SD algorithm must check three most significant digit (MSD) bits of the remainder to decide the quotient digit in the set of {−1, 0, 1}, and then perform the SD addition. Moreover, the final SD result must be converted to binary representation. Also note that the signed-digit addition is more complicated than the conventional carry-save adder (CSA).

Another type of algorithms entirely avoids the slow subtract-detect-shift type of operation previously mentioned. They transform the division operation to a series of multiplication operations that converge to the original quotient. Among the examples are the constant convergence (S. Waser and M. J. Flynn, Introduction to Arithmetic for Digital Systems Designers, New York: CBS College Publishing, Chap. 5, 1982) and quadratic convergence (P. Markenstein, “Computation of Elementary Functions on the IBM RISC System/6000 Processor,” IBM Journal of Research and Development, Vol. 34, 1990, pp. 111-119; D. A. Patterson and J. L. Hennessy, Computer: A Quantitative Approach, San Mateo, Calif., Morgan Kaufman, 1990) division algorithms which are based on Newton-Raphson algorithm. They are often found in multiplier-based processors. They are still sequential type of operation to certain degree, and obviously require much more shift-and-add operations.

There is an on-line division algorithm that facilitates serial/serial division operation (K. S. Trivedi and M. D. Ercegovac, “On-Line Algorithms for Division and Multiplication,” IEEE Trans. on Computers, Vol. C-26, No. 7, July 1977). This algorithm has advantages such as that: (a) it is pipelined at digit level; (b) all operands and results are communicated digit serial, and (c) result digits are on-line obtained after a few initial delay. On the other hand, among some of its disadvantages are: (a) it requires more complex three-input signed-digit addition operation; (b) it needs more complicated quotient decision circuit for range detection of the remainder, and (c) output results have to be converted to binary representations.

SUMMARY OF THE INVENTION

In this work, a fast radix-2 division algorithm and its architecture is proposed. The algorithm adheres to the shift/subtract-and-add type of division operation. The key idea behind this algorithm is to separate the sign detection operation of remainder from the remainder subtraction operation. By taking the absolute values of the remainders, we can successively subtract the remainders without the need of knowing the signs of remainders, while signs of the remainders can be decided in parallel and independently at the same time. To enhance the algorithm's performance, several design techniques were incorporated into its architecture realization.

The new algorithm and its architecture retain as many of the advantages of the mentioned algorithms as possible, and simultaneously gets rid of their disadvantages. The algorithm adopts non-restoring division operation and CSA type of operation for fast subtraction. Quotient digit set of {1, −1{ is assumed for fast quotient conversion to binary representation. The algorithm is also an on-line algorithm that facilitates highly pipelined operation while it is much simpler than the existing on-line algorithms.

This object of the present invention is fulfilled by providing a method for finding a quotient Q=a₀a₁a₂ . . . a_(b) from a divisor Y=y₁y₂ . . . y_(n) and a dividend X=x₁x₂ . . . x_(n). The method comprises the following steps of: (a) aligning the first non-zero bit of X with the first non-zero digit of Y; (b) defining a signed-digit partial remainder series R_(i) where R₀=Y, a first sign series of the partial remainder S_(i) where S₀=0, a second sign series of the partial remainder S_(n), and a counter i beginning from zero; (c) subtracting X from R_(i) which yields next signed-digit partial remainder R_(i+1); (d) setting the sign of R_(i+1) to S_(n+1); (e) setting the result of exclusive-OR of S_(i) and S_(n+1) to the true sign of the next remainder S_(i+1); (f) setting a_(i) to 1 if S_(i+1) =0 or R_(i+1)=0; (g) setting a_(i) to 0 if S_(i+1)=1; (h) inverting the signs of all digits of R_(i+1) if S_(i+1)=1; (i) shift R_(i+1) left by one bit; (j) adding 1 to i; and (k) repeating said steps (c) to (j) until it reaches a predetermined value or R_(i+1)=0.

Further scope of applicability of the present invention will become apparent from the detailed description given hereinafter. However, it should be understood that the detailed description and specific examples, while indicating preferred embodiments of the invention, are give by way of illustration only, since various changes and modifications within the spirit and scope of the invention will become apparent to those skilled in the art from this detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows in block diagram form an overview of the digital information processing system implementing the invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

For achieving fast division, a new division algorithm is proposed and discussed hereinafter.

New Division Algorithm

Given normalized n-bit sign magnitude operands 1/2≦|X|<1, 1/2≦|Y|<1 (this limitation is used to automatically align the first non-zero bit of X with the first non-zero digit of Y in the later discussion, which is avoided in circuit realization), quotient Q₂ of Y/X can be solved using the following principles, where the quotient digits Q₂=a_(s)a₀ ·a₁a₂ . . . a_(n) is in sign-magnitude representation and a_(s) is the sign bit.

Principle 1

a_(s) equals to the result of exclusive-OR of the sign bits y_(s) and x_(s) of Y and X, respectively, i. e., a_(s)=y_(s)⊕x_(s).

Principle 2

Partial remainder R_(i+1) can be solved by modifying the conventional, nonrestoring algorithm stated by K. Hwang as follows. The signed-binary quotient Q has its quotient digit q_(i)ε{1, −1}, and R _(i+1)=2|R _(i) −q _(i+1) ′X|  (1) where R₀=|y|, q₀=1, q_(i)′ is the i-th pseudo quotient digit. Since R_(i+1) is always positive, Eq. (1) can be rewritten as R _(i+1)=2|R _(i) −X|  (2)

$\quad\begin{matrix} {q_{i + 1} = \left\{ \begin{matrix} {1,{{{if}\mspace{14mu} S_{i + 1}} = 0}} \\ {1,{{{if}\mspace{14mu} Z_{i + 1}} = 1}} \\ {{- 1},{{{if}\mspace{14mu} S_{i + 1}} = 0}} \end{matrix} \right.} & (3) \\ {a_{i} = \left\{ \begin{matrix} {1,{{{if}\mspace{14mu} q_{i + 1}} = 1}} \\ {0,{{{if}\mspace{14mu} q_{i + 1}} = {- 1}}} \end{matrix} \right.} & (4) \end{matrix}$ where

S_(n)=The sign of remainder (R_(i)−X),

S_(i)=True sign of i-th remainder=S_(i−1)⊕S_(n),

Z_(i)=Zero Flag, Z₀=0, and

S₀=S_(r0)=Sign{R₀}=0.

The algorithm can be performed using the method described below.

New Division Method

Define signed magnitude numbers Y_(s)=y_(s)·y₁y₂ . . . y_(n), X_(s)=x_(s)·x₁x₂ . . . x_(n), and Q_(s)=q_(s)q₀·q₁q₂ . . . q_(b) in signed-binary representation, q_(s)ε{−1, 1}, and converted to sign magnitude representation Q₂=a_(s)a₀·a₁a₂ . . . a_(b), a_(i)ε{0, 1}. The quotient Q₂ of X_(s)/Y_(s) can be solved by the following steps:

Step 1:

a_(s)=y_(s)⊕x_(s).

Step 2:

Define Y=y₁y₂ . . . y_(n), X=x₁x₂ . . . x_(a), Q=a₀a₁a₂ . . . a_(b), R₀=Y, i=0, and S₀=0.

Step 3:

Subtract X from R_(i) and yield next signed-digit partial remainder R_(i+1). Set the sign of R_(i+1) to S_(ri+1) (note that the sign of R_(i+1) equals the sign of first non-zero digit of R_(i+1)). Set the result of S_(i)⊕S_(ri+1) to the true sign of the next remainder S_(i+1). Set a_(i) to 1 if S_(i+1)=0 (means the remainder is positive) or R_(i+1)=0. Set a_(i) to 0 if S_(i+1)=1 (means the remainder is negative).

Step 4:

If S_(i+1)=1, then take the absolute value of R_(i+1) (by inverting the signs of all digits). Shift R_(i+1) left by one bit. Add 1 to i. Repeat step 3 until i reaches a predetermined value or R_(i+1)=0.

For better comprehension, two examples are used to demonstrate the division method hereinafter:

EXAMPLE 1

Y=01010001₂=81

X=00001001₂=9 (X will be shifted left 3 places to align its highest non-zero digit with highest non-zero digit of R₀)

$\begin{matrix} {\mspace{20mu} 1010001} & {\mspace{20mu}{R_{0} = Y}} \\ \underset{\_}{- 1001000} & {\mspace{20mu} X} \\ {\mspace{20mu} 0001001} & {\mspace{20mu}{{{R_{1} > {0\mspace{14mu}{then}\mspace{20mu} S_{r\; 1}}} = 0},}} \\ \; & {\mspace{20mu}{{S_{1} = {{S_{r\; 1} \oplus S_{0}} = 0}},{a_{0} = 1}}} \end{matrix}$ SHIFT  LEFT  ONE  BIT $\begin{matrix} {\mspace{14mu} 0010010} & \; \\ \underset{\_}{- 1001000} & {\mspace{20mu} X} \\ {- 0110110} & {\mspace{20mu}{{{R_{2} < {0\mspace{14mu}{then}\mspace{14mu} S_{r\; 2}}} = 1},}} \\ \; & {\mspace{20mu}{{S_{2} = {{S_{r\; 2} \oplus S_{2}} = 1}},{a_{2} = 0}}} \end{matrix}$ TAKE  ABSOLUTE  VALUE 0110110 SHIFT  LEFT  ONE  BIT $\begin{matrix} {\mspace{14mu} 1101100} & \; \\ \underset{\_}{- 1001000} & {\mspace{14mu} X} \\ {\mspace{14mu} 0100100} & {\mspace{14mu}{{{R_{3} > {0\mspace{14mu}{then}\mspace{20mu} S_{r\; 3}}} = 0},}} \\ \; & {\mspace{14mu}{{S_{3} = {{S_{r\; 3} \oplus S_{2}} = 1}},{a_{2} = 0}}} \end{matrix}$ SHIFT  LEFT  ONE  BIT $\begin{matrix} {\mspace{14mu} 1001000} & \; \\ \underset{\_}{- 1001000} & {\mspace{14mu} X} \\ {\mspace{14mu} 0000000} & {\mspace{14mu}{R_{4} = {{0\mspace{14mu}{then}\mspace{14mu} a_{3}} = 1}}} \end{matrix}$

Result:

-   -   The quotient=a₀a₁a₂a₃=1001₂=9, and remainder=0

EXAMPLE 2

In this example, note that a digit with a bar means a digit having negative value, e.g.

-   -   1 1 ₂=2+(−1)=1.

Y=10101110₂=174

X=11₂=3

$\begin{matrix} {\; 10101110} & {\mspace{20mu}{R_{0} = Y}} \\ \underset{\_}{- 11} & {\mspace{20mu} X} \\ {\;{0\overset{\_}{1}101110}} & {\mspace{20mu}{{{R_{1} < {0\mspace{14mu}{then}\mspace{20mu} S_{r\; 1}}} = 1},}} \\ \; & {\mspace{20mu}{{S_{1} = {{S_{r\; 1} \oplus S_{0}} = 1}},{a_{0} = 0}}} \end{matrix}$ TAKE  ABSOLUTE  VALUE $01\overset{\_}{1}0\overset{\_}{111}0$ SHIFT  LEFT  ONE  BIT $\begin{matrix} {1\overset{\_}{1}0\overset{\_}{111}00} & \; \\ \underset{\_}{- 11} & {\mspace{20mu} X} \\ {\overset{\_}{1}00\overset{\_}{111}00} & {\mspace{20mu}{{{R_{2} < {0\mspace{14mu}{then}\mspace{14mu} S_{r\; 2}}} = 1},}} \\ \; & {\mspace{20mu}{{S_{2} = {{S_{r\; 2} \oplus S_{1}} = 0}},{a_{1} = 1}}} \end{matrix}$ TAKE  ABSOLUTE  VALUE 1001110 SHIFT  LEFT  ONE  BIT $\begin{matrix} 100111000 & \; \\ \underset{\_}{- 11} & {\mspace{14mu} X} \\ 01111000 & {\mspace{14mu}{{{R_{3} > {0\mspace{14mu}{then}\mspace{20mu} S_{r\; 3}}} = 0},}} \\ \; & {\mspace{14mu}{{S_{3} = {{S_{r\; 3} \oplus S_{2}} = 0}},{a_{2} = 1}}} \end{matrix}$ SHIFT  LEFT  ONE  BIT $\begin{matrix} {\mspace{14mu} 1001000} & \; \\ \underset{\_}{- 11} & {\mspace{14mu} X} \\ {\mspace{14mu} 00110000} & {\mspace{14mu}{{{R_{4} > {0\mspace{14mu}{then}\mspace{14mu} S_{r\; 4}}} = 0},}} \\ \; & {\mspace{14mu}{{S_{4} = {{S_{r\; 4} \oplus S_{3}} = 0}},{a_{3} = 1}}} \end{matrix}$ SHIFT  LEFT  ONE  BIT $\begin{matrix} 01100000 & \; \\ \underset{\_}{- 11} & {\mspace{20mu} X} \\ {\overset{\_}{1}0100000} & {\mspace{14mu}{{{R_{5} < {0\mspace{14mu}{then}\mspace{14mu} S_{r\; 5}}} = 1},}} \\ \; & {\mspace{14mu}{{S_{5} = {{S_{r\; 5} \oplus S_{4}} = 1}},{a_{4} = 0}}} \end{matrix}$ TAKE  ABSOLUTE  VALUE $10\overset{\_}{1}00000$ SHIFT  LEFT  ONE  BIT $\begin{matrix} {10\overset{\_}{1}00000} & \; \\ \underset{\_}{- 11} & {\mspace{25mu} X} \\ 00000000 & {\mspace{20mu}{{R_{6} = {{0\mspace{14mu}{then}\mspace{14mu} a_{5}} = 1}},{a_{6} = 0}}} \end{matrix}\begin{matrix} \; & \; \end{matrix}$

-   -   The quotient=a₀a₁a₂a₃a₄a₅a₆=0111010₂=58, and remainder=0

Since absolute values of the partial remainders are computed instead of their actual values, the algorithm facilities parallel computations of partial remainder and quotient digit. To further speed up the operation of subtraction in the preferred embodiment, we used specified signed-digit operation.

Specific Signed-Digit Subtraction

Since computations of Eq. (2) involves only the subtraction operation of two positive numbers, R_(i) and X, we can speed up the computation by defining the CSA-like operation as follows. y _(j) −x _(j)=2c _(j+1) +t _(j)  (5.a) t _(j) +c _(j) =r _(j)  (5.b) wherein y_(j), r_(j)ε{−1, 0, 1}

-   -   x_(j), t_(j)ε{0, 1}         -   c_(j)ε{−1, 0}.

Here, a signed-digit y_(j) (represents the j-th digit of R_(i)) subtracts a binary digit x_(j), then generates carry c_(j+i) and intermediate result t_(j). The final result r_(j) (represents the j-th digit of R_(i+1)) is obtained by adding t_(j) and the carry-in bit c_(j). Since r_(j)ε{−1, 0, 1}, there will be no carry generated from t_(j)+c_(j). As a result, the specified signed-digit subtraction efficiently eliminates carry propagation. In addition, the complexity of this operation is similar to that of conventional CSA. Example 3 depicts the modified subtraction method where T_(i)=t₁t₂ . . . t_(n) and C_(i)=c₁c₂ . . . c_(n).

EXAMPLE 3

Y=01010001₂=81

X=00001001₂=9

$\begin{matrix} {\mspace{20mu} 1010001} & {\mspace{20mu}{R_{0} = Y}} \\ \underset{\_}{- 1001000} & {\mspace{20mu} X} \\ {\mspace{20mu} 0011001} & {\mspace{20mu} T_{1}} \\ \underset{\_}{- 0001000} & {\mspace{14mu} C_{1}} \\ {\mspace{25mu} 0001001} & {\mspace{14mu}{{{R_{1} > {0\mspace{14mu}{then}\mspace{14mu} S_{r\; 1}}} = 0},}} \\ \; & {\mspace{14mu}{{S_{1} = {{S_{r\; 1} \oplus S_{0}} = 0}},{a_{0} = 1}}} \end{matrix}$ SHIFT  LEFT  ONE  BIT $\begin{matrix} {\mspace{14mu} 0010010} & \; \\ \underset{\_}{- 1001000} & {\mspace{14mu} X} \\ {\mspace{20mu} 1011010} & {\mspace{14mu} T_{2}} \\ \underset{\_}{- 1001000} & {\mspace{14mu} C_{2}} \\ {\overset{\_}{1}1001010} & {\mspace{14mu}{{{R_{2} < {0\mspace{14mu}{then}\mspace{14mu} S_{r\; 2}}} = 1},}} \\ \; & {\mspace{14mu}{{S_{2} = {{S_{r\; 2} \oplus S_{1}} = 1}},{a_{1} = 0}}} \end{matrix}$ TAKE  ABSOLUTE  VALUE $1\overset{\_}{1}00\overset{\_}{1}0\overset{\_}{1}0$ SHIFT  LEFT  ONE  BIT $\begin{matrix} {1\overset{\_}{1}00\overset{\_}{1}0\overset{\_}{1}00} & \; \\ \underset{\_}{- 1001000} & {\mspace{20mu} X} \\ 111011100 & {\mspace{20mu} T_{3}} \\ \underset{\_}{- 011011100} & {\mspace{14mu} C_{3}} \\ {\mspace{11mu}{001\overset{\_}{1}00100}} & {\mspace{14mu}{{{R_{3} > {0\mspace{14mu}{then}\mspace{14mu} S_{r\; 3}}} = 0},}} \\ \; & {\mspace{14mu}{{S_{3} = {{S_{r\; 3} \oplus S_{2}} = 1}},{a_{2} = 0}}} \end{matrix}$ SHIFT  LEFT  ONE  BIT $\begin{matrix} {\mspace{11mu}{1\overset{\_}{1}001000}} & \; \\ \underset{\_}{- 1001000} & X \\ {\mspace{14mu} 10000000} & T_{4} \\ \underset{\_}{- 01000000} & C_{4} \\ {\mspace{110mu} 0} & {R_{4} = {{0\mspace{14mu}{then}\mspace{14mu} a_{3}} = 1}} \end{matrix}$

Result:

-   -   The quotient=1001₂=9, and remainder=0

As shown in the above example, T_(i) and C_(i) are calculated first, then R_(i) can be easily decided. The truth table of t_(j) and c_(j+1) value are listed in table 1, where the signed-digit r_(j) of R_(i) is represented by two bits, r_(j) ¹ and r_(j) ². r_(j) ¹=sign(r_(j)}.r_(j) ²=|r_(j)|.

TABLE 1 TRUTH TABLE OF t_(j) AND c_(j+1) x_(j) r_(j) ¹ r_(j) ¹ c_(j+1) t_(j) 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 Note that r_(j) represents j-th digit of R_(i) here.

The truth table of r_(j) (represents the j-th digit of R_(i+1)) is listed in table 2.

TABLE 2 TRUTH TABLE OF r_(j) (the j-th digit of R_(i+1)) c_(j) t_(j) r_(j) ¹ r_(i) ² 0 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0

From the above tables we can see that the signed-digit subtraction can be achieved by a simple digital circuit, and can be pipe-lined for better performance.

CONCLUSION

In summary, the division algorithm have the advantages as follows:

a) It uses a smaller quotient digit set of {1, −1} than {−1, 0, 1}, that simplifies that quotient decision circuits like some known algorithms do, but achieves the exact division and trivial conversion of the results from signed-binary representation to binary representation.

b) It needs no quotient estimator.

c) In each iteration, the algorithm computes partial remainders without knowing the signs of previous remainders and decides the signs of remainders independently and in parallel. In addition, these two operations are done in pipelined fashion and in digit level with maximum throughput rate.

d) Its architecture basically consists of the simple CSA type cells.

e) It can handle either positive or negative operands.

From above discussion, the proposed division algorithm and its architecture is very efficient. The new algorithm's realization is composed of highly regular cellular array, which is suitable for VLSI implementation and can be easily extended to bit-parallel implementation. As can be seen in FIG. 1, digital information processing system 10 includes arithmetic unit 12 and memory 14. Arithmetic unit 12 typically contains VLSI binary logic circuit elements (such as adders, shifters, exclusive-or circuits, etc) which, under system control, receives binary divisor and dividend data from memory 14, performs the steps of the invention, and thereupon provides the resulting quotient data back to memory 14. Those skilled in the art of digital information processing systems can readily provide the interconnection of needed logic circuit elements (and their appropriate control) to implement the invention.

The algorithm can be extended to higher radix divisions such as radix-4 division. Since the remainders are taken absolute values, the digit set contains only digits 1 and 2 is sufficient for the entire radix-4 operation. This greatly reduces the number of search regions for the quotient digits, in contrast to the bigger set of {0, 1, 2, 3} that existing algorithms allow.

While the invention has been described by way of an example and in terms of several preferred embodiments, it is to be understood that the invention need not be limited to the disclosed embodiment. On the contrary, it is intended to cover various modifications and similar arrangements included within the spirit and scope of the appended claims, the scope of which should be accorded the broadest interpretation so as to encompass all such modifications and similar structures. 

1. In a system for digital information processing, said system having a memory, a method for generating data representative of a quotient Q=a₀a₁a₂ . . . a_(b) from data representative of a divisor Y=y₁y₂ . . . y_(n) and data representative of a dividend X=x₁x₂ . . . x_(a), comprising the steps of: (a) aligning the first non-zero bit of X with the first non-zero digit of Y; (b) defining a signed-digit partial remainder series R_(i) where R₀=Y, a first sign series of the partial remainder S_(i) where S₀=0, a second sign series of the partial remainder S_(ri), a quotient bit series a_(i), and a counter i beginning from zero; (c) subtracting X from R_(i) which yields next signed-digit partial remainder R_(i+1); (d) setting the sign of R_(i+1) to S_(ri+1); (e) setting the result of exclusive-OR of S_(i) and S_(ri+1) to the true sign of the next remainder S_(i+1); (f) setting a_(i) to 1 if S_(i+1)=0 or R_(i+1)=0; (g) setting a_(i) to 0 if S_(i+1)=1; (h) inverting the signs of all digits of R_(i+1) if S_(i+1)=1; (i) shift R_(i+1) left by one bit; (j) adding 1 to i; (k) repeating steps (c) to (j) until i reaches a predetermined value or R_(i+1)=0; and (l) storing in said memory as said data representative of a quotient, a quotient resulting from step (k).
 2. In a system for digital information processing, said system having a memory for storing data, a method for generating data representative of a signed magnitude quotient Q₂=a_(s)a₀a₁a₂ . . . a_(b) from data representative of a signed divisor Y_(s)=y_(s)·y₁y₂ . . . y_(n), and data representative of a signed dividend X_(s)=x_(s)·x₁x₂ . . . x_(s), comprising the steps of: (a) obtaining a_(s) from the result of exclusive-OR of y_(s) and x_(s); (b) defining a divisor Y=y₁y₂ . . . y_(n) , a dividend X=x₁x₂ . . . x_(s), a signed-digit partial remainder series R_(i) where R₀=Y, a first sign series of the partial remainder S_(i) where S₀=0, a second sign series of the partial remainder S_(ri), a quotient bit series a_(i), and a counter i beginning from zero; (c) aligning the first non-zero bit of X with the first non-zero digit of Y; (d) subtracting X from R_(i) which yields next signed-digit partial remainder R_(i+1); (e) setting the sign of R_(i+1) to S_(ri+1); (f) setting the result of exclusive-OR of S_(i) and S_(ri+1) to the true sign of the next remainder S_(i+1); (g) setting a_(i) to 1 if S_(i+1)=0 or R_(i+1)=0; (h) setting a_(i) to 0 if S_(i+1)=1; (i) inverting the signs of all digits of R_(i+1) if S_(i+1)=1; (j) shift R_(i+1) left by one bit; (k) adding 1 to i; and (l) repeating steps (d) to (k) until i reaches a predetermined value or R_(i+1)=0; and (l) storing in said memory as said data representative of a signed magnitude quotient, a quotient resulting from step (k).
 3. A system for digital information processing, said system having a memory for storing data, including data representative of a quotient Q=a₀a₁a₂ . . . a_(b) from data representative of a divisor Y=y₁y₂ . . . y_(n) and data representative of a dividend X=x₁x₂ . . . x_(a), said data representative of a quotient generated by a method comprising the steps of: (a) aligning the first non-zero bit of X with the first non-zero digit of Y; (b) defining a signed-digit partial remainder series R_(i) where R₀=Y, a first sign series of the partial remainder S_(i) where S₀=0, a second sign series of the partial remainder S_(ri),a quotient bit series a_(i), and a counter i beginning from zero; (c) subtracting X from R_(i) which yields next signed-digit partial remainder R_(i+1); (d) setting the sign of R_(i+1) to S_(ri+1); (e) setting the result of exclusive-OR of S_(i) and S_(ri+1) to the true sign of the next remainder S_(i+1); (f) setting a_(i) to 1 if S_(i+1)=0 or R_(i+1)=0; (g) setting a_(i) to 0 if S_(i+1)=1; (h) inverting the signs of all digits of R₊₁ if S₊₁=1; (i) shift R_(i+1) left by one bit; (j) adding 1 to i; (k) repeating steps (c) to (j) until i reaches a predetermined value or R_(i+1)=0; and (l) storing in said memory as said data representative of a quotient, a quotient resulting from step (k).
 4. A system for digital information processing, said system having a memory for storing data, including data representative of a signed magnitude quotient Q₂=a_(s)a₀·a₁a₂ . . . a_(b) from data representative of a signed divisor Y_(s)=y_(s)·y₁y₂ . . . y_(n), and data representative of a signed dividend X_(s)=x_(s)·x₁x₂ . . . x_(s), said data representative of a signed magnitude quotient generated by a method comprising the steps of: (a) obtaining a_(s) from the result of exclusive-OR of y_(s) and x_(s); (b) defining a divisor Y=y₁y₂ . . . y_(n), a dividend X=x₁x₂ . . . x_(s), a signed-digit partial remainder series R_(i) where R₀=Y, a first sign series of the partial remainder S_(i) where S₀=0, a second sign series of the partial remainder S_(ri), a quotient bit series a_(i), and a counter i beginning from zero; (c) aligning the first non-zero bit of X with the first non-zero digit of Y; (d) subtracting X from R_(i) which yields next signed-digit partial remainder R_(i+1); (e) setting the sign of R_(i+1) to S_(ri+1); (f) setting the result of exclusive-OR of S_(i) and S_(ri+1) to the true sign of the next remainder S_(i+1); (g) setting a_(i) to 1 if S_(i+1)=0 or R_(i+1)=0; (h) setting a_(i) to 0 if S_(i+1)=1; (i) inverting the signs of all digits of R_(i+1) if S_(i+1)=1; (j) shift R_(i+1) left by one bit; (k) adding 1 to i; (l) repeating steps (d) to (k) until i reaches a predetermined value or R_(i+1)=0; and (m) storing in said memory as said data representative of a signed magnitude quotient, a quotient resulting from step (l). 